Some processing systems incorporate several processing devices wherein each processing device is coupled to its own dedicated memory device. For example, a system may include a first processor for providing one type of functionality (e.g., baseband operations or graphics processing) and a second processor for providing another type of functionality (e.g., application processing). In such a system, the first processor may be coupled to a first memory device and the second processor may be coupled to a second memory device.
In practice, it may be desirable to allow each of the processors to access the memory device coupled to the other processor. For example, in some cases the same information may be used by both processors. Also, at certain times one of the processors may not utilize all of the available memory space provided by its dedicated memory device while the other processor may need access to more memory space than is provided by its dedicated memory device.
Various techniques have been employed to accomplish sharing of such memory devices. For example, in some systems the processors may cooperate to maintain duplicate images of data in the different memory devices. Such a scheme may, however, involve a relatively significant processing load associated with providing contention control and maintaining up-to-date copies of the data in each data memory. In addition, the amount of memory available for use in the system with this scheme is reduced due to the use of duplicate data structures. In some systems a private bus is provided between the processors to enable each processor to communicate with the other processor to access the memory device associated with the other processor. A scheme such as this may, however, result in relatively long latency periods and/or lower bandwidth when accessing the memory device associated with the other processor. In addition, the above schemes may consume more power as a result of forwarding data between the devices in multiple stages (e.g., across multiple links). In some applications (e.g., portable applications), however, it is highly desirable to reduce power consumption as much a possible. Consequently, there is a need for efficient techniques for sharing memory between multiple devices.
In accordance with common practice the various features illustrated in the drawings may not be drawn to scale. Accordingly, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may be simplified for clarity. Thus, the drawings may not depict all of the components of a given apparatus or method. Finally, like reference numerals may be used to denote like features throughout the specification and figures.